package com.ygqh.baby.service;

import java.util.Date;
import java.util.List;

import com.ygqh.baby.ao.QueryInfo;
import com.ygqh.baby.ao.ResultSet;
import com.ygqh.baby.po.YgUserOpen;

public interface YgUserOpenService {

	List<YgUserOpen> find();

	int findCount();

	YgUserOpen findById(Long id);

	int deleteSoft(Long[] ids);

	int deleteSoft(Long id);

	int save(YgUserOpen ygUserOpen);

	int update(YgUserOpen ygUserOpen);

	int saveOrUpdate(YgUserOpen ygUserOpen);

	ResultSet<YgUserOpen> search(QueryInfo queryInfo, String q);

	/**
	 * 只用于微信授权绑定
	 * 
	 * @param openId
	 * @return
	 */
	YgUserOpen findByOpenId(String openId);

	/**
	 * 渠道场景扫码(存在的话表示该微信用户已扫过)
	 * 
	 * @param openId
	 * @param sourceCode
	 * @return
	 */
	YgUserOpen findByScan(String openId, String sourceCode);

	YgUserOpen findBySmallOpenId(String openId);

	/**
	 * 该微信用户是否进行过微信授权的
	 * 
	 * @param openId
	 * @param fromCode
	 * @return
	 */
	Boolean existWxAuthorization(String openId, String fromCode);

	/**
	 * 
	 * @Title: findScanCountByFromCode
	 * @Description: (按时间区间查询某source值的扫码集合)
	 * @param fromCodes
	 * @param startDate
	 * @param endDate
	 * @param openId
	 *            （不包含openId）
	 * @return 入参
	 * @return List<YgUserOpen> 返回类型
	 * @author （guohao）
	 * @throws
	 * @date 2017年7月6日 下午3:36:43
	 * @version V1.0
	 */
	List<YgUserOpen> findScanCountByFromCode(String[] fromCodes, Date startDate, Date endDate, String openId);

	int countScanCountByFromCode(String[] sourceCodes, Date startDate, Date endDate, String openId);

    Boolean existBySubscribe(String openId);
}
